package org.jeecg.modules.xxgx.djgl.service;

import com.github.pagehelper.PageInfo;
import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.xxgx.djgl.dto.DjcfDto;
import org.jeecg.modules.xxgx.djgl.dto.IntelligentCodingMainDto;
import org.jeecg.modules.xxgx.djgl.entity.CsXxDkdj;
import org.jeecg.modules.xxgx.djgl.entity.CsXxDkdjAndMx;
import org.jeecg.modules.xxgx.djgl.entity.CsXxDkdjmx;
import org.jeecg.modules.xxgx.djgl.vo.IntelligentCodingVo;
import org.jeecg.modules.xxgx.djgl.vo.PreviewQRcodeVo;

import java.util.List;

public interface IDjcl {

    /**
     * 单据合并
     * @param ids
     * @return
     */
    Result<String> orderCombineNoDetailCombineById(String ids);

    /**
     * 明细合并
     * @param ids
     * @param combineRule
     * @param negaRowNewOrderFlag
     * @return
     */
    Result<String> orderDetailCombineById(String ids,String combineRule,String negaRowNewOrderFlag);

    Result<String> orderCombineCancel(String id);
    Result<String> orderSplitCancel(String id);

    List<String> orderSplitById(DjcfDto dto);

    PageInfo<List<CsXxDkdjmx>> getDetailListBySqdIds(String ids, String pageSize, String page);

    /**
     * 获取原单列表
     * @param id
     * @param pageSize
     * @param page
     * @return
     */
    PageInfo<List<CsXxDkdj>> getOriginalList(String id, String pageSize, String page);

    /**
     * 获取子单列表
     * @param id
     * @param pageSize
     * @param page
     * @return
     */
    PageInfo<List<CsXxDkdj>> getChildlList(String id, String pageSize, String page);

    Result<String> manualSplitOrderSave(CsXxDkdjAndMx csXxDkdjAndMx);

    void changeInvoiceType(String ids, String fplxdm, String tspz);

    PreviewQRcodeVo previewQRcode(String id);

    List<IntelligentCodingVo> intelligentCoding(String id);

    void saveIntelligentCoding(IntelligentCodingMainDto dto);

}
